package com.sky.service;

import com.sky.dto.ServiceProviderDTO;
import com.sky.dto.ServiceProviderPageQueryDTO;
import com.sky.entity.ServiceProvider;
import com.sky.result.PageResult;
import com.sky.result.Result;
import com.sky.vo.ServiceProviderVO;

import java.util.List;

public interface ServiceProviderService {
    /**
     * 新增服务人员和对应技能
     * @param serviceProviderDTO
     */
    void addWithSkill(ServiceProviderDTO serviceProviderDTO);

    /**
     * 分页查询服务人员
     */
    PageResult pageQuery(ServiceProviderPageQueryDTO serviceProviderPageQueryDTO);

    /**
     * 批量删除服务人员
     * @param ids
     */
    void deleteBatch(List<Long> ids);

    /**
     * 根据id查询服务人员
     * @param id
     */
    ServiceProviderVO getServiceProviderVOById(Long id);

    /**
     * 修改服务人员
     * @param serviceProviderDTO
     */
    void updateWithSkill(ServiceProviderDTO serviceProviderDTO);

    /**
     * 启用停用服务人员
     * @param status
     * @param id
     */
    void startOrStopProvider(Integer status, Long id);

    /**
     * 根据分类id查询服务人员
     * @param categoryId
     * @return
     */
    List<ServiceProvider> list(Long categoryId);
    
    /**
     * 条件查询服务人员和技能
     * @param serviceProvider
     * @return
     */
    List<ServiceProviderVO> listWithSkill(ServiceProvider serviceProvider);

    /**
     * 根据手机号查询服务人员
     * @param phone
     * @return
     */
    ServiceProvider getByPhone(String phone);

    /**
     * 根据用户名查询服务人员
     * @param username
     * @return
     */
    ServiceProvider getByUsername(String username);
} 